/**
 * Copyright 2008 Eugene Creswick
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package Codigo;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.ciscavate.cjwizard.*;
import org.ciscavate.cjwizard.pagetemplates.TitledPageTemplate;

/**
 * //// * This demo class uses a JDialog to hold the wizard.
 *
 *
 * @author kyerte
 *
 */
public class Asistente extends JFrame {

    @Override
    public void setResizable(boolean resizable) {
        super.setResizable(resizable);
    }
    JComboBox cboCliente = new JComboBox();
    JTextArea txtInfoCliente = new JTextArea();
    //Cara Datos
    JComboBox cboMedio = new JComboBox();
    JComboBox cboNivelInteres = new JComboBox();
    JComboBox cboInteresadoEn = new JComboBox();
    JComboBox cboTipoViviendaActual = new JComboBox();
    JComboBox cboObjetivo = new JComboBox();
    JComboBox cboNivelGusto = new JComboBox();
    JTextField txtAcompaniante = new JTextField(10);
    JCheckBox chkConociaDesarrollo = new JCheckBox("Conocia desarrollo");
    JTextField txtTipoVehiculo = new JTextField(10);
    JTextField txtIngreso = new JTextField(10);
    //Cara Comentarios
    JTextArea txtComentarios = new JTextArea(5, 20);
    JTextArea txtComentariosOtrosDesarrollos = new JTextArea(5, 20);
    JTextArea txtObservaciones = new JTextArea(5, 20);
    JComboBox cboCalificacion = new JComboBox();
    JComboBox cboRelacion = new JComboBox();
    JTextField txtOtrosDesarrollos = new JTextField();
    JTextField txtCorridaFinanciera = new JTextField();
    ConsultaResultadosCliente consultaResultadosCliente = null;
    ConsultaComentariosCliente consultaComentariosCliente = null;
    com.toedter.calendar.JDateChooser txtFecha = new com.toedter.calendar.JDateChooser();
    lu.tudor.santec.jtimechooser.JTimeChooser txtHora = new lu.tudor.santec.jtimechooser.JTimeChooser();
    private int idCliente = 0;
    private int idResultadosCliente = 0;
    private int idComentariosCliente = 0;
    private boolean nuevoResultado = false;
    private boolean nuevoComentarios = false;
    public static String clienteObtenido;
    /**
     * Commons logging log instance
     */
    private static Log log = LogFactory.getLog(Asistente.class);

    public Asistente() {
        super("Asistente de captura");
        this.setIconImage(new ImageIcon(getClass().getResource("/Imagenes/Accion35.png")).getImage());
        obtenerClientes();
        obtenerMedios();
        consultaResultadosCliente = new ConsultaResultadosCliente();
        consultaComentariosCliente = new ConsultaComentariosCliente();
        txtIngreso.setText("0");
        // first, build the wizard.  The TestFactory defines the
        // wizard content and behavior.
        final WizardContainer wc =
                new WizardContainer(new TestFactory(),
                new TitledPageTemplate());
        // add a wizard listener to update the dialog titles and notify the
        // surrounding application of the state of the wizard:        
        wc.addWizardListener(new WizardListener() {
            @Override
            public void onCanceled(List<WizardPage> path, WizardSettings settings) {
                log.debug("settings: " + wc.getSettings());
                Asistente.this.dispose();
            }

            @Override
            public void onFinished(List<WizardPage> path, WizardSettings settings) {
                log.debug("settings: " + wc.getSettings());
                Asistente.this.dispose();
            }

            @Override
            public void onPageChanged(WizardPage newPage, List<WizardPage> path) {
                log.debug("settings: " + wc.getSettings());
                // Set the dialog title to match the description of the new page:
                Asistente.this.setTitle(newPage.getDescription());

                switch (newPage.getDescription()) {

                    case "Datos":
                        idCliente = (new ConsultaCliente()).obtenerIdCliente(cboCliente.getSelectedItem().toString());
                        nuevoResultado = !comprobarSiExisteDatosPrevios();
                        nuevoComentarios = !comprobarSiExisteComentariosPrevio();
                        if (!nuevoResultado) {
                            cargarResultadosPrevios();
                        } else {
                            cboMedio.setSelectedIndex(0);
                            cboNivelInteres.setSelectedIndex(0);
                            cboInteresadoEn.setSelectedIndex(0);
                            cboTipoViviendaActual.setSelectedIndex(0);
                            cboObjetivo.setSelectedIndex(0);
                            cboNivelGusto.setSelectedIndex(0);
                            txtAcompaniante.setText("");
                            chkConociaDesarrollo.setSelected(false);
                            txtTipoVehiculo.setText("");
                            txtIngreso.setText("0");
                            txtComentarios.setText("");
                            txtComentariosOtrosDesarrollos.setText("");
                            txtObservaciones.setText("");
                            cboCalificacion.setSelectedIndex(0);
                            cboRelacion.setSelectedIndex(0);
                        }
                        break;
                    case "Comentarios":
                        if (nuevoResultado) {
                            if (registrarResultadosCliente(obtenerIdMedio()) == 1) {
                                nuevoResultado = false;
                                idResultadosCliente = consultaResultadosCliente.obtenerIdUltimoRegistro();
                            } else {
                                JOptionPane.showMessageDialog(null, "No se pudo guardar",
                                        "Asistente", JOptionPane.ERROR_MESSAGE);
                            }
                        } else {
                            if (actualizarResultadosCliente(obtenerIdMedio()) == 1) {
                            } else {
                                JOptionPane.showMessageDialog(null, "No se pudo guardar",
                                        "Asistente", JOptionPane.ERROR_MESSAGE);
                            }
                        }
                        break;
                    case "Fin":
                        if (nuevoComentarios) {
                            if (registrarComentariosCliente() == 1) {
                                nuevoComentarios = false;
                                idComentariosCliente = consultaComentariosCliente.obtenerIdUltimoRegistro();
                            } else {
                                JOptionPane.showMessageDialog(null, "No se pudo guardar",
                                        "Asistente", JOptionPane.ERROR_MESSAGE);
                            }
                        } else {
                            if (actualizarComentariosCliente() == 1) {
                            } else {
                                JOptionPane.showMessageDialog(null, "No se pudo guardar",
                                        "Asistente", JOptionPane.ERROR_MESSAGE);
                            }
                        }
                        break;
                }
            }
        });

        // Set up the standard bookkeeping stuff for a dialog, and
        // add the wizard to the JDialog:
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        this.getContentPane().add(wc);
        this.pack();
    }

    public static void establecerClienteCbo(String nombre) {
        clienteObtenido = nombre;
    }

    /**
     * Implementation of PageFactory to generate the wizard pages needed for the
     * wizard.
     */
    private class TestFactory implements PageFactory {

        // To keep things simple, we'll just create an array of wizard pages:
        private final WizardPage[] pages = {
            new WizardPage("One", "Cliente") {
                // this is an instance initializer -- it's a constructor for
                // an anonymous class.  WizardPages don't need to be anonymous,
                // of course.  It just makes the demo fit in one file if we do it
                // this way:
                {
                    // set a name on any component that you want to collect values
                    // from.  Be sure to do this *before* adding the component to
                    // the WizardPage.txtInfoCliente.setName("testField");

                    JScrollPane sbrText;
                    sbrText = new JScrollPane(txtInfoCliente);
                    sbrText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
                    JButton cmdNuevoCliente = new JButton("Nuevo cliente");
                    JButton cmdBuscarCliente = new JButton("Buscar cliente");
                    cmdBuscarCliente.setName(TOOL_TIP_TEXT_KEY);
                    cmdNuevoCliente.setIcon(new javax.swing.ImageIcon(getClass()
                            .getResource("/Imagenes/user_32.png")));
                    cmdBuscarCliente.setIcon(new javax.swing.ImageIcon(getClass()
                            .getResource("/Imagenes/Busca.png")));
                    cmdNuevoCliente.addActionListener(new ManejadorBoton());
                    cmdBuscarCliente.addActionListener(new ManejadorBoton());
                    cboCliente.setName("cboCliente");

                    txtInfoCliente.setPreferredSize((new Dimension(350, 100)));
                    cmdNuevoCliente.setPreferredSize(new Dimension(50, 50));
                    cboCliente.setPreferredSize(new Dimension(300, 20));

                    JPanel infoCliente = new JPanel();
                    infoCliente.setLayout(new BorderLayout(5, 20));

                    Box cajaArriba = Box.createHorizontalBox();
                    cajaArriba.add(new JLabel("Cliente"));
                    cajaArriba.add(cboCliente);
                    cajaArriba.add(cmdBuscarCliente);
                    infoCliente.add(cajaArriba, "North");

                    Box cajaMedio = Box.createHorizontalBox();
                    cajaMedio.add(new JLabel("Información"));
                    cajaMedio.add(sbrText);
                    infoCliente.add(cajaMedio, "Center");

                    Box cajaAbajo = Box.createHorizontalBox();
                    cmdNuevoCliente.setMnemonic('N');
                    cajaAbajo.add(cmdNuevoCliente);
                    infoCliente.add(cajaAbajo, "South");

                    add(infoCliente);
                }
            },
            new WizardPage("Two", "Datos") {
                {

                    JPanel panelControles = new JPanel();
                    panelControles.setLayout(new GridLayout(6, 1, 5, 20));

                    cboMedio.setPreferredSize(new Dimension(200, 20));
                    JPanel panel1 = new JPanel();
                    panel1.setLayout(new FlowLayout(5));
                    Box caja1 = Box.createHorizontalBox();
                    panel1.add(new JLabel("Medio por el que se enteró"));
                    panel1.add(cboMedio);
                    panel1.add(chkConociaDesarrollo);
                    caja1.add(panel1);

                    cboNivelInteres.setPreferredSize(new Dimension(100, 20));
                    cboInteresadoEn.setPreferredSize(new Dimension(150, 20));
                    cboInteresadoEn.addItem("Ninguno");
                    cboInteresadoEn.addItem("Casa");
                    cboInteresadoEn.addItem("Corretaje");
                    cboInteresadoEn.addItem("Departamento");
                    cboInteresadoEn.addItem("Local");
                    cboInteresadoEn.addItem("Terreno");
                    cboNivelInteres.addItem("Ninguno");
                    cboNivelInteres.addItem("Bajo");
                    cboNivelInteres.addItem("Medio");
                    cboNivelInteres.addItem("Alto");
                    JPanel panel2 = new JPanel();
                    panel2.setLayout(new FlowLayout(20));
                    Box caja2 = Box.createHorizontalBox();
                    panel2.add(new JLabel("Nivel intéres"));
                    panel2.add(new JLabel("            "));
                    panel2.add(cboNivelInteres);
                    panel2.add(new JLabel("            "));
                    panel2.add(new JLabel("Interesado en"));
                    panel2.add(cboInteresadoEn);
                    caja2.add(panel2);

                    cboTipoViviendaActual.setPreferredSize(new Dimension(100, 20));
                    cboObjetivo.setPreferredSize(new Dimension(100, 20));
                    cboNivelGusto.setPreferredSize(new Dimension(100, 20));
                    cboTipoViviendaActual.addItem("Ninguno");
                    cboTipoViviendaActual.addItem("Propia");
                    cboTipoViviendaActual.addItem("Rentada");
                    cboTipoViviendaActual.addItem("Prestada");
                    cboObjetivo.addItem("Habitar");
                    cboObjetivo.addItem("Rentar");
                    cboObjetivo.addItem("Inversión");
                    cboNivelGusto.addItem("Ninguno");
                    cboNivelGusto.addItem("Alto");
                    cboNivelGusto.addItem("Medio");
                    cboNivelGusto.addItem("Bajo");
                    Box caja3 = Box.createHorizontalBox();
                    JPanel panel3 = new JPanel();
                    panel3.setLayout(new FlowLayout(5));
                    panel3.add(new JLabel("Tipo vivienda actual"));
                    panel3.add(cboTipoViviendaActual);
                    panel3.add(new JLabel("            "));
                    panel3.add(new JLabel("Objetivo compra"));
                    panel3.add(cboObjetivo);
                    caja3.add(panel3);

                    Box caja4 = Box.createHorizontalBox();
                    JPanel panel4 = new JPanel();
                    panel4.setLayout(new FlowLayout(5));
                    panel4.add(new JLabel("Nivel de gusto"));
                    panel4.add(new JLabel("        "));
                    panel4.add(cboNivelGusto);
                    panel4.add(new JLabel("        "));
                    panel4.add(new JLabel("   "));
                    panel4.add(new JLabel("Acompañante"));
                    panel4.add(new JLabel("      "));
                    panel4.add(txtAcompaniante);
                    caja4.add(panel4);

                    Box caja5 = Box.createHorizontalBox();
                    JPanel panel5 = new JPanel();
                    panel5.setLayout(new FlowLayout(20));
                    panel5.add(new JLabel("Tipo vehículo"));
                    panel5.add(new JLabel("          "));
                    panel5.add(txtTipoVehiculo);
                    panel5.add(new JLabel("         "));
                    panel5.add(new JLabel("Ingreso promedio"));
                    panel5.add(txtIngreso);
                    caja5.add(panel5);

                    JPanel panel6 = new JPanel();
                    panel6.setLayout(new FlowLayout(5));
                    Box caja6 = Box.createHorizontalBox();
                    panel6.add(new JLabel("Fecha visita"));
                    txtFecha.setPreferredSize(new Dimension(150, 20));
                    panel6.add(txtFecha);
                    panel6.add(new JLabel("         "));
                    panel6.add(new JLabel("Hora"));
                    panel6.add(txtHora);
                    caja6.add(panel6);

                    panelControles.add(caja6);
                    panelControles.add(caja1);
                    panelControles.add(caja2);
                    panelControles.add(caja3);
                    panelControles.add(caja4);

                    add(panelControles);

                }
            },
            new WizardPage("Three", "Comentarios") {
                {
                    JPanel panelControles = new JPanel();
                    panelControles.setLayout(new GridLayout(4, 1, 5, 0));

                    cboCalificacion.addItem("Regular");
                    cboCalificacion.addItem("Bueno");
                    cboCalificacion.addItem("Excelente");

                    cboRelacion.addItem("Mala");
                    cboRelacion.addItem("Regular");
                    cboRelacion.addItem("Buena");
                    cboRelacion.addItem("Excelente");

                    JPanel panel1 = new JPanel();
                    panel1.setLayout(new FlowLayout(20));
                    Box caja1 = Box.createHorizontalBox();
                    JScrollPane sbrText;
                    sbrText = new JScrollPane(txtComentarios);
                    sbrText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
                    panel1.add(new JLabel("Comentarios"));
                    panel1.add(new JLabel("                  "));
                    panel1.add(sbrText);
                    caja1.add(panel1);

                    cboCalificacion.setPreferredSize(new Dimension(100, 20));
                    cboRelacion.setPreferredSize(new Dimension(100, 20));
                    JPanel panel2 = new JPanel();
                    panel2.setLayout(new FlowLayout());
                    Box caja2 = Box.createHorizontalBox();
                    panel2.add(new JLabel("Calificación de ubicación"));
                    panel2.add(cboCalificacion);
                    panel2.add(new JLabel("             "));
                    panel2.add(new JLabel("Relación con el cliente"));
                    panel2.add(cboRelacion);
                    caja2.add(panel2);

                    JPanel panel3 = new JPanel();
                    panel3.setLayout(new FlowLayout(20));
                    Box caja3 = Box.createHorizontalBox();
                    panel3.add(new JLabel("Comentarios de los otros desarrollos"));
                    panel3.add(new JLabel("     "));
                    panel3.add(new JLabel("Observaciones"));
                    caja3.add(panel3);

                    JPanel panel4 = new JPanel();
                    panel4.setLayout(new FlowLayout(20));
                    Box caja4 = Box.createHorizontalBox();
                    JScrollPane sbrText1;
                    sbrText1 = new JScrollPane(txtComentariosOtrosDesarrollos);
                    sbrText1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
                    JScrollPane sbrText2;
                    sbrText2 = new JScrollPane(txtObservaciones);
                    sbrText2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
                    panel4.add(sbrText1);
                    panel4.add(new JLabel("             "));
                    panel4.add(sbrText2);
                    caja4.add(panel4);

                    panelControles.add(caja1);
                    panelControles.add(caja2);
                    panelControles.add(caja3);
                    panelControles.add(caja4);

                    add(panelControles);
                }
            },
            new WizardPage("Four", "Fin") {
                {
                    add(new JLabel("Se ha capturado la información del cliente"));
                }

                /* (non-Javadoc)
                 * @see org.ciscavate.cjwizard.WizardPage#updateSettings(org.ciscavate.cjwizard.WizardSettings)
                 */
                @Override
                public void updateSettings(WizardSettings settings) {
                    super.updateSettings(settings);

                    // This is called when the user clicks next, so we could do
                    // some longer-running processing here if we wanted to, and
                    // pop up progress bars, etc.  Once this method returns, the
                    // wizard will continue.  Beware though, this runs in the
                    // event dispatch thread (EDT), and may render the UI
                    // unresponsive if you don't issue a new thread for any long
                    // running ops.  Future versions will offer a better way of
                    // doing this.
                }

                /**
                 * This is the last page in the wizard, so we will enable the
                 * finish button and disable the "Next >" button just before the
                 * page is displayed:
                 */
                @Override
                public void rendering(List<WizardPage> path, WizardSettings settings) {
                    super.rendering(path, settings);
                    setFinishEnabled(true);
                    setNextEnabled(false);
                }
            }
        };

        /* (non-Javadoc)
         * @see org.ciscavate.cjwizard.PageFactory#createPage(java.util.List, org.ciscavate.cjwizard.WizardSettings)
         */
        @Override
        public WizardPage createPage(List<WizardPage> path,
                WizardSettings settings) {
            log.debug("creating page " + path.size());

            // Get the next page to display.  The path is the list of all wizard
            // pages that the user has proceeded through from the start of the
            // wizard, so we can easily see which step the user is on by taking
            // the length of the path.  This makes it trivial to return the next
            // WizardPage:
            WizardPage page = pages[path.size()];
            // if we wanted to, we could use the WizardSettings object like a
            // Map<String, Object> to change the flow of the wizard pages.
            // In fact, we can do arbitrarily complex computation to determine
            // the next wizard page.

            log.debug("Returning page: " + page);
            return page;
        }
    }

    private void obtenerClientes() {
        List<Cliente> resultadoClientes = (new ConsultaCliente()).obtenerTodosLosClientes();

        for (int x = 0; x < resultadoClientes.size(); x++) {
            cboCliente.addItem(resultadoClientes.get(x).obtenerNombre());
        }
    }

    private void obtenerMedios() {
        List<MedioPublicitario> resultadoMedios = (new ConsultaMediosPublicitarios()).
                consultarMediosPublicitarios();

        for (int x = 0; x < resultadoMedios.size(); x++) {
            cboMedio.addItem(resultadoMedios.get(x).obtenerNombre());

        }
    }

    private int obtenerIdMedio() {
        int idMedio = 0;
        idMedio = (new ConsultaMediosPublicitarios()).obtenerIdMediosPublicitarios(cboMedio.getSelectedItem().toString());
        return idMedio;
    }

    private int registrarResultadosCliente(int idMedio) {
        int resultado = 0;
        java.sql.Time horaSQL = null;
        try {

            System.out.println(txtFecha.getDate().getTime());
            SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
            horaSQL = new java.sql.Time(sdf.parse(txtHora.getFormatedTime()).getTime());

        } catch (NullPointerException ex) {
            JOptionPane.showMessageDialog(null, "Es necesario seleccionar una fecha",
                    "Asistente de captura", JOptionPane.WARNING_MESSAGE);
            return resultado;

        } catch (ParseException ex) {
            ex.printStackTrace();
            return resultado;
        }
        resultado = consultaResultadosCliente.agregarNuevoResultadoCliente(idMedio, idCliente,
                cboNivelInteres.getSelectedIndex(), cboInteresadoEn.getSelectedItem().toString(),
                cboTipoViviendaActual.getSelectedItem().toString(),
                cboObjetivo.getSelectedItem().toString(), txtAcompaniante.getText(),
                chkConociaDesarrollo.isSelected(), txtTipoVehiculo.getText(),
                Float.parseFloat(txtIngreso.getText()), cboNivelGusto.getSelectedIndex(),
                new java.sql.Date(txtFecha.getDate().getTime()), horaSQL);

        return resultado;
    }

    private int actualizarResultadosCliente(int idMedio) {
        int resultado = 0;
        java.sql.Time horaSQL = null;
        
        try {
            System.out.println(txtFecha.getDate().getTime());
            SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
            horaSQL = new java.sql.Time(sdf.parse(txtHora.getFormatedTime()).getTime());
        } catch (NullPointerException ex) {
            JOptionPane.showMessageDialog(null, "Es necesario seleccionar una fecha",
                    "Asistente de captura", JOptionPane.WARNING_MESSAGE);
            return resultado;
        } catch (ParseException ex) {
            ex.printStackTrace();
            return resultado;
        }
        
        resultado = consultaResultadosCliente.actualizarResultadoCliente(idMedio, idCliente,
                cboNivelInteres.getSelectedIndex(), cboInteresadoEn.getSelectedItem().toString(),
                cboTipoViviendaActual.getSelectedItem().toString(),
                cboObjetivo.getSelectedItem().toString(), txtAcompaniante.getText(),
                chkConociaDesarrollo.isSelected(), txtTipoVehiculo.getText(),
                Float.parseFloat(txtIngreso.getText()), cboNivelGusto.getSelectedIndex(),
                new java.sql.Date(txtFecha.getDate().getTime()), horaSQL,
                idResultadosCliente);
        
        return resultado;
    }

    private int registrarComentariosCliente() {
        int resultado = 0;
        resultado = consultaComentariosCliente.insertarComentariosCliente(idResultadosCliente,
                txtComentarios.getText(), cboCalificacion.getSelectedIndex(),
                cboRelacion.getSelectedIndex(), txtComentariosOtrosDesarrollos.getText(),
                txtObservaciones.getText());

        return resultado;
    }

    private int actualizarComentariosCliente() {
        int resultado = 0;
        resultado = consultaComentariosCliente.actualizarComentariosCliente(txtComentarios.getText(),
                cboCalificacion.getSelectedIndex(), cboRelacion.getSelectedIndex(),
                txtComentariosOtrosDesarrollos.getText(), txtObservaciones.getText(),
                idComentariosCliente);
        return resultado;
    }

    private boolean comprobarSiExisteDatosPrevios() {
        idResultadosCliente = consultaResultadosCliente.obtenerIdResultados(idCliente);
        if (idResultadosCliente != 0) {
            return true;
        } else {
            return false;
        }
    }

    private boolean comprobarSiExisteComentariosPrevio() {

        idComentariosCliente = consultaComentariosCliente.obtenerIdComentarios(idResultadosCliente);

        if (idComentariosCliente != 0) {
            return true;
        } else {
            return false;
        }
    }

    private void cargarResultadosPrevios() {

        ResultadosCliente resultadoCliente = null;
        resultadoCliente = consultaResultadosCliente.obtenerResultadosCliente(idResultadosCliente);

        //Cara Datos

        cboMedio.setSelectedItem((new ConsultaMediosPublicitarios()).
                obtenerNombreMediosPublicitarios(resultadoCliente.obteneridMedios()));
        cboNivelInteres.setSelectedIndex(resultadoCliente.obtenerNivelInteres());
        cboInteresadoEn.setSelectedItem(resultadoCliente.obtenerInteresandoEn());
        cboTipoViviendaActual.setSelectedItem(resultadoCliente.obtenerViviendaActual());
        cboObjetivo.setSelectedItem(resultadoCliente.obtenerObjetivo());
        cboNivelGusto.setSelectedIndex(resultadoCliente.obtenerNivelGusto());
        txtAcompaniante.setText(resultadoCliente.obtenerAcompaniante());
        chkConociaDesarrollo.setSelected(resultadoCliente.obtenerConociaDesarrollo());
        txtTipoVehiculo.setText(resultadoCliente.obtenerVehiculo());
        txtIngreso.setText("" + resultadoCliente.obtenerIngreso());
        txtFecha.setDate(resultadoCliente.obtenerFecha());
        txtHora.setTime(resultadoCliente.obtenerHora());

        //Cara Comentarios

        ComentariosCliente comentarioCliente = null;
        comentarioCliente = consultaComentariosCliente.consultarComentariosCliente(idComentariosCliente);

        if (comentarioCliente != null) {
            txtComentarios.setText(comentarioCliente.obtenerComentarios());
            txtComentariosOtrosDesarrollos.setText(comentarioCliente.obtenerComentariosOtros());
            txtObservaciones.setText(comentarioCliente.obtenerObservaciones());
            cboCalificacion.setSelectedIndex(comentarioCliente.obtenerUbicacion());
            cboRelacion.setSelectedIndex(comentarioCliente.obtenerRelacion());
        }
    }

    private class ManejadorBoton implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent ae) {
            switch (ae.getActionCommand()) {
                case "Nuevo cliente":
                    FrmClientes ventanaClientes = new FrmClientes();
                    ventanaClientes.setLocationRelativeTo(null);
                    ventanaClientes.setVisible(true);
                    break;
                case "Buscar cliente":
                    JDBuscaCliente ventanaBuscaCliente = new JDBuscaCliente(null, true, false);
                    ventanaBuscaCliente.setLocationRelativeTo(null);
                    ventanaBuscaCliente.setVisible(true);
                    cboCliente.setSelectedItem(clienteObtenido);
                    break;
            }
        }
    }
}
